package com.ronhorner.primes;

import java.math.BigInteger;
import java.util.ArrayList;
/**
 * <p>A simple class to hold all of the known Carmichael numbers</p>
 * 
 * @author Ron Horner
 *
 * <p>This Carmichael class is an ArrayList of all of the known Carmichael
 * numbers.  This list of numbers was found at: </p>
 * <p><a href="http://de.wikibooks.org/wiki/Pseudoprimzahlen:_Tabelle_Carmichael-Zahlen">
 * http://de.wikibooks.org/wiki/Pseudoprimzahlen:_Tabelle_Carmichael-Zahlen
 * </a></p>  
 * <p>It is understood that there are infinitely many Carmichael Numbers, but there
 * are also infintiely many Mersene Primes.  However we only know of a finite number of them.  So
 * for the purposes of this class, it serves as a safety net for the Fermat primality test.</p>
 *
 */
public class Carmichael {

    public static ArrayList NUMBERS = new ArrayList();
    static {
        NUMBERS.add(new BigInteger("561"));
        NUMBERS.add(new BigInteger("1105"));
        NUMBERS.add(new BigInteger("1729"));
        NUMBERS.add(new BigInteger("2465"));
        NUMBERS.add(new BigInteger("2821"));
        NUMBERS.add(new BigInteger("6601"));
        NUMBERS.add(new BigInteger("8911"));
        NUMBERS.add(new BigInteger("10585"));
        NUMBERS.add(new BigInteger("15841"));
        NUMBERS.add(new BigInteger("29341"));
        NUMBERS.add(new BigInteger("41041"));
        NUMBERS.add(new BigInteger("46657"));
        NUMBERS.add(new BigInteger("52633"));
        NUMBERS.add(new BigInteger("62745"));
        NUMBERS.add(new BigInteger("63973"));
        NUMBERS.add(new BigInteger("75361"));
        NUMBERS.add(new BigInteger("101101"));
        NUMBERS.add(new BigInteger("115921"));
        NUMBERS.add(new BigInteger("126217"));
        NUMBERS.add(new BigInteger("162401"));
        NUMBERS.add(new BigInteger("172081"));
        NUMBERS.add(new BigInteger("188461"));
        NUMBERS.add(new BigInteger("252601"));
        NUMBERS.add(new BigInteger("278545"));
        NUMBERS.add(new BigInteger("294409"));
        NUMBERS.add(new BigInteger("314821"));
        NUMBERS.add(new BigInteger("334153"));
        NUMBERS.add(new BigInteger("340561"));
        NUMBERS.add(new BigInteger("399001"));
        NUMBERS.add(new BigInteger("410041"));
        NUMBERS.add(new BigInteger("449065"));
        NUMBERS.add(new BigInteger("488881"));
        NUMBERS.add(new BigInteger("512461"));
        NUMBERS.add(new BigInteger("530881"));
        NUMBERS.add(new BigInteger("552721"));
        NUMBERS.add(new BigInteger("656601"));
        NUMBERS.add(new BigInteger("658801"));
        NUMBERS.add(new BigInteger("670033"));
        NUMBERS.add(new BigInteger("748657"));
        NUMBERS.add(new BigInteger("825265"));
        NUMBERS.add(new BigInteger("838201"));
        NUMBERS.add(new BigInteger("852841"));
        NUMBERS.add(new BigInteger("997633"));
        NUMBERS.add(new BigInteger("1024651"));
        NUMBERS.add(new BigInteger("1033669"));
        NUMBERS.add(new BigInteger("1050985"));
        NUMBERS.add(new BigInteger("1082809"));
        NUMBERS.add(new BigInteger("1152271"));
        NUMBERS.add(new BigInteger("1193221"));
        NUMBERS.add(new BigInteger("1461241"));
        NUMBERS.add(new BigInteger("1569457"));
        NUMBERS.add(new BigInteger("1615681"));
        NUMBERS.add(new BigInteger("1773289"));
        NUMBERS.add(new BigInteger("1857241"));
        NUMBERS.add(new BigInteger("1909001"));
        NUMBERS.add(new BigInteger("2100901"));
        NUMBERS.add(new BigInteger("2113921"));
        NUMBERS.add(new BigInteger("2433601"));
        NUMBERS.add(new BigInteger("2455921"));
        NUMBERS.add(new BigInteger("2508013"));
        NUMBERS.add(new BigInteger("2531845"));
        NUMBERS.add(new BigInteger("2628073"));
        NUMBERS.add(new BigInteger("2704801"));
        NUMBERS.add(new BigInteger("3057601"));
        NUMBERS.add(new BigInteger("3146221"));
        NUMBERS.add(new BigInteger("3224065"));
        NUMBERS.add(new BigInteger("3581761"));
        NUMBERS.add(new BigInteger("3664585"));
        NUMBERS.add(new BigInteger("3828001"));
        NUMBERS.add(new BigInteger("4335241"));
        NUMBERS.add(new BigInteger("4463641"));
        NUMBERS.add(new BigInteger("4767841"));
        NUMBERS.add(new BigInteger("4903921"));
        NUMBERS.add(new BigInteger("4909177"));
        NUMBERS.add(new BigInteger("5031181"));
        NUMBERS.add(new BigInteger("5049001"));
        NUMBERS.add(new BigInteger("5148001"));
        NUMBERS.add(new BigInteger("5310721"));
        NUMBERS.add(new BigInteger("5444489"));
        NUMBERS.add(new BigInteger("5481451"));
        NUMBERS.add(new BigInteger("5632705"));
        NUMBERS.add(new BigInteger("6049681"));
        NUMBERS.add(new BigInteger("6054985"));
        NUMBERS.add(new BigInteger("6189121"));
        NUMBERS.add(new BigInteger("6313681"));
        NUMBERS.add(new BigInteger("6733693"));
        NUMBERS.add(new BigInteger("6840001"));
        NUMBERS.add(new BigInteger("6868261"));
        NUMBERS.add(new BigInteger("7207201"));
        NUMBERS.add(new BigInteger("7519441"));
        NUMBERS.add(new BigInteger("7995169"));
        NUMBERS.add(new BigInteger("8134561"));
        NUMBERS.add(new BigInteger("8341201"));
        NUMBERS.add(new BigInteger("8355841"));
        NUMBERS.add(new BigInteger("8719309"));
        NUMBERS.add(new BigInteger("8719921"));
        NUMBERS.add(new BigInteger("8830801"));
        NUMBERS.add(new BigInteger("8927101"));
        NUMBERS.add(new BigInteger("9439201"));
        NUMBERS.add(new BigInteger("9494101"));
        NUMBERS.add(new BigInteger("9582145"));
        NUMBERS.add(new BigInteger("9585541"));
        NUMBERS.add(new BigInteger("9613297"));
        NUMBERS.add(new BigInteger("9890881"));
        NUMBERS.add(new BigInteger("10024561"));
        NUMBERS.add(new BigInteger("10267951"));
        NUMBERS.add(new BigInteger("10402561"));
        NUMBERS.add(new BigInteger("10606681"));
        NUMBERS.add(new BigInteger("10837321"));
        NUMBERS.add(new BigInteger("10877581"));
        NUMBERS.add(new BigInteger("11119105"));
        NUMBERS.add(new BigInteger("11205601"));
        NUMBERS.add(new BigInteger("11921001"));
        NUMBERS.add(new BigInteger("11972017"));
        NUMBERS.add(new BigInteger("12261061"));
        NUMBERS.add(new BigInteger("12262321"));
        NUMBERS.add(new BigInteger("12490201"));
        NUMBERS.add(new BigInteger("12945745"));
        NUMBERS.add(new BigInteger("13187665"));
        NUMBERS.add(new BigInteger("13696033"));
        NUMBERS.add(new BigInteger("13992265"));
        NUMBERS.add(new BigInteger("14469841"));
        NUMBERS.add(new BigInteger("14676481"));
        NUMBERS.add(new BigInteger("14913991"));
        NUMBERS.add(new BigInteger("15247621"));
        NUMBERS.add(new BigInteger("15403285"));
        NUMBERS.add(new BigInteger("15829633"));
        NUMBERS.add(new BigInteger("15888313"));
        NUMBERS.add(new BigInteger("16046641"));
        NUMBERS.add(new BigInteger("16778881"));
        NUMBERS.add(new BigInteger("17098369"));
        NUMBERS.add(new BigInteger("17236801"));
        NUMBERS.add(new BigInteger("17316001"));
        NUMBERS.add(new BigInteger("17586361"));
        NUMBERS.add(new BigInteger("17812081"));
        NUMBERS.add(new BigInteger("18162001"));
        NUMBERS.add(new BigInteger("18307381"));
        NUMBERS.add(new BigInteger("18900973"));
        NUMBERS.add(new BigInteger("19384289"));
        NUMBERS.add(new BigInteger("19683001"));
        NUMBERS.add(new BigInteger("20964961"));
        NUMBERS.add(new BigInteger("21584305"));
        NUMBERS.add(new BigInteger("22665505"));
        NUMBERS.add(new BigInteger("23382529"));
        NUMBERS.add(new BigInteger("25603201"));
        NUMBERS.add(new BigInteger("26280073"));
        NUMBERS.add(new BigInteger("26474581"));
        NUMBERS.add(new BigInteger("26719701"));
        NUMBERS.add(new BigInteger("26921089"));
        NUMBERS.add(new BigInteger("26932081"));
        NUMBERS.add(new BigInteger("27062101"));
        NUMBERS.add(new BigInteger("27336673"));
        NUMBERS.add(new BigInteger("27402481"));
        NUMBERS.add(new BigInteger("28787185"));
        NUMBERS.add(new BigInteger("29020321"));
        NUMBERS.add(new BigInteger("29111881"));
        NUMBERS.add(new BigInteger("31146661"));
        NUMBERS.add(new BigInteger("31405501"));
        NUMBERS.add(new BigInteger("31692805"));
        NUMBERS.add(new BigInteger("32914441"));
        NUMBERS.add(new BigInteger("33596641"));
        NUMBERS.add(new BigInteger("34196401"));
        NUMBERS.add(new BigInteger("34657141"));
        NUMBERS.add(new BigInteger("34901461"));
        NUMBERS.add(new BigInteger("35571601"));
        NUMBERS.add(new BigInteger("35703361"));
        NUMBERS.add(new BigInteger("36121345"));
        NUMBERS.add(new BigInteger("36765901"));
        NUMBERS.add(new BigInteger("37167361"));
        NUMBERS.add(new BigInteger("37280881"));
        NUMBERS.add(new BigInteger("37354465"));
        NUMBERS.add(new BigInteger("37964809"));
        NUMBERS.add(new BigInteger("38151361"));
        NUMBERS.add(new BigInteger("38624041"));
        NUMBERS.add(new BigInteger("38637361"));
        NUMBERS.add(new BigInteger("39353665"));
        NUMBERS.add(new BigInteger("40280065"));
        NUMBERS.add(new BigInteger("40430401"));
        NUMBERS.add(new BigInteger("40622401"));
        NUMBERS.add(new BigInteger("40917241"));
        NUMBERS.add(new BigInteger("41298985"));
        NUMBERS.add(new BigInteger("41341321"));
        NUMBERS.add(new BigInteger("41471521"));
        NUMBERS.add(new BigInteger("42490801"));
        NUMBERS.add(new BigInteger("43286881"));
        NUMBERS.add(new BigInteger("43331401"));
        NUMBERS.add(new BigInteger("43584481"));
        NUMBERS.add(new BigInteger("43620409"));
        NUMBERS.add(new BigInteger("44238481"));
        NUMBERS.add(new BigInteger("45318561"));
        NUMBERS.add(new BigInteger("45877861"));
        NUMBERS.add(new BigInteger("45890209"));
        NUMBERS.add(new BigInteger("46483633"));
        NUMBERS.add(new BigInteger("47006785"));
        NUMBERS.add(new BigInteger("48321001"));
        NUMBERS.add(new BigInteger("49333201"));
        NUMBERS.add(new BigInteger("50201089"));
        NUMBERS.add(new BigInteger("53245921"));
        NUMBERS.add(new BigInteger("54767881"));
        NUMBERS.add(new BigInteger("55462177"));
        NUMBERS.add(new BigInteger("56052361"));
        NUMBERS.add(new BigInteger("58489201"));
        NUMBERS.add(new BigInteger("60112885"));
        NUMBERS.add(new BigInteger("60957361"));
        NUMBERS.add(new BigInteger("62756641"));
        NUMBERS.add(new BigInteger("64377991"));
        NUMBERS.add(new BigInteger("64774081"));
        NUMBERS.add(new BigInteger("65241793"));
        NUMBERS.add(new BigInteger("67371265"));
        NUMBERS.add(new BigInteger("67653433"));
        NUMBERS.add(new BigInteger("67902031"));
        NUMBERS.add(new BigInteger("67994641"));
        NUMBERS.add(new BigInteger("68154001"));
        NUMBERS.add(new BigInteger("69331969"));
        NUMBERS.add(new BigInteger("70561921"));
        NUMBERS.add(new BigInteger("72108421"));
        NUMBERS.add(new BigInteger("72286501"));
        NUMBERS.add(new BigInteger("74165065"));
        NUMBERS.add(new BigInteger("75151441"));
        NUMBERS.add(new BigInteger("75765313"));
        NUMBERS.add(new BigInteger("76595761"));
        NUMBERS.add(new BigInteger("77826001"));
        NUMBERS.add(new BigInteger("78091201"));
        NUMBERS.add(new BigInteger("78120001"));
        NUMBERS.add(new BigInteger("79411201"));
        NUMBERS.add(new BigInteger("79624621"));
        NUMBERS.add(new BigInteger("80282161"));
        NUMBERS.add(new BigInteger("81638401"));
        NUMBERS.add(new BigInteger("81926461"));
        NUMBERS.add(new BigInteger("82929001"));
        NUMBERS.add(new BigInteger("83966401"));
        NUMBERS.add(new BigInteger("84311569"));
        NUMBERS.add(new BigInteger("84350561"));
        NUMBERS.add(new BigInteger("84417985"));
        NUMBERS.add(new BigInteger("87318001"));
        NUMBERS.add(new BigInteger("90698401"));
        NUMBERS.add(new BigInteger("92625121"));
        NUMBERS.add(new BigInteger("93030145"));
        NUMBERS.add(new BigInteger("93869665"));
        NUMBERS.add(new BigInteger("94536001"));
        NUMBERS.add(new BigInteger("96895441"));
        NUMBERS.add(new BigInteger("99036001"));
        NUMBERS.add(new BigInteger("99830641"));
        NUMBERS.add(new BigInteger("99861985"));
        NUMBERS.add(new BigInteger("100427041"));
        NUMBERS.add(new BigInteger("101649241"));
        NUMBERS.add(new BigInteger("101957401"));
        NUMBERS.add(new BigInteger("102090781"));
        NUMBERS.add(new BigInteger("104404861"));
        NUMBERS.add(new BigInteger("104569501"));
        NUMBERS.add(new BigInteger("104852881"));
        NUMBERS.add(new BigInteger("105117481"));
        NUMBERS.add(new BigInteger("105309289"));
        NUMBERS.add(new BigInteger("105869401"));
        NUMBERS.add(new BigInteger("107714881"));
        NUMBERS.add(new BigInteger("109393201"));
        NUMBERS.add(new BigInteger("109577161"));
        NUMBERS.add(new BigInteger("111291181"));
        NUMBERS.add(new BigInteger("114910489"));
        NUMBERS.add(new BigInteger("115039081"));
        NUMBERS.add(new BigInteger("115542505"));
        NUMBERS.add(new BigInteger("116682721"));
        NUMBERS.add(new BigInteger("118901521"));
        NUMBERS.add(new BigInteger("119327041"));
        NUMBERS.add(new BigInteger("120981601"));
        NUMBERS.add(new BigInteger("121247281"));
        NUMBERS.add(new BigInteger("122785741"));
        NUMBERS.add(new BigInteger("124630273"));
        NUMBERS.add(new BigInteger("127664461"));
        NUMBERS.add(new BigInteger("128697361"));
        NUMBERS.add(new BigInteger("129255841"));
        NUMBERS.add(new BigInteger("129762001"));
        NUMBERS.add(new BigInteger("130032865"));
        NUMBERS.add(new BigInteger("130497361"));
        NUMBERS.add(new BigInteger("132511681"));
        NUMBERS.add(new BigInteger("133205761"));
        NUMBERS.add(new BigInteger("133344793"));
        NUMBERS.add(new BigInteger("133800661"));
        NUMBERS.add(new BigInteger("134809921"));
        NUMBERS.add(new BigInteger("134857801"));
        NUMBERS.add(new BigInteger("135556345"));
        NUMBERS.add(new BigInteger("136625941"));
        NUMBERS.add(new BigInteger("139592101"));
        NUMBERS.add(new BigInteger("139952671"));
        NUMBERS.add(new BigInteger("140241361"));
        NUMBERS.add(new BigInteger("144218341"));
        NUMBERS.add(new BigInteger("145124785"));
        NUMBERS.add(new BigInteger("146843929"));
        NUMBERS.add(new BigInteger("150846961"));
        NUMBERS.add(new BigInteger("151530401"));
        NUMBERS.add(new BigInteger("151813201"));
        NUMBERS.add(new BigInteger("153927961"));
        NUMBERS.add(new BigInteger("157731841"));
        NUMBERS.add(new BigInteger("158404141"));
        NUMBERS.add(new BigInteger("158864833"));
        NUMBERS.add(new BigInteger("159492061"));
        NUMBERS.add(new BigInteger("161035057"));
        NUMBERS.add(new BigInteger("161242705"));
        NUMBERS.add(new BigInteger("161913961"));
        NUMBERS.add(new BigInteger("163954561"));
        NUMBERS.add(new BigInteger("167979421"));
        NUMBERS.add(new BigInteger("168659569"));
        NUMBERS.add(new BigInteger("169057801"));
        NUMBERS.add(new BigInteger("169570801"));
        NUMBERS.add(new BigInteger("170947105"));
        NUMBERS.add(new BigInteger("171679561"));
        NUMBERS.add(new BigInteger("172290241"));
        NUMBERS.add(new BigInteger("172430401"));
        NUMBERS.add(new BigInteger("172947529"));
        NUMBERS.add(new BigInteger("173085121"));
        NUMBERS.add(new BigInteger("174352641"));
        NUMBERS.add(new BigInteger("175997185"));
        NUMBERS.add(new BigInteger("176659201"));
        NUMBERS.add(new BigInteger("178451857"));
        NUMBERS.add(new BigInteger("178482151"));
        NUMBERS.add(new BigInteger("178837201"));
        NUMBERS.add(new BigInteger("180115489"));
        NUMBERS.add(new BigInteger("181154701"));
        NUMBERS.add(new BigInteger("182356993"));
        NUMBERS.add(new BigInteger("184353001"));
        NUMBERS.add(new BigInteger("186393481"));
        NUMBERS.add(new BigInteger("186782401"));
        NUMBERS.add(new BigInteger("188516329"));
        NUMBERS.add(new BigInteger("188689501"));
        NUMBERS.add(new BigInteger("189941761"));
        NUMBERS.add(new BigInteger("193910977"));
        NUMBERS.add(new BigInteger("194120389"));
        NUMBERS.add(new BigInteger("194675041"));
        NUMBERS.add(new BigInteger("196358977"));
        NUMBERS.add(new BigInteger("200753281"));
        NUMBERS.add(new BigInteger("206955841"));
        NUMBERS.add(new BigInteger("208969201"));
        NUMBERS.add(new BigInteger("212027401"));
        NUMBERS.add(new BigInteger("214850881"));
        NUMBERS.add(new BigInteger("214852609"));
        NUMBERS.add(new BigInteger("216821881"));
        NUMBERS.add(new BigInteger("221884001"));
        NUMBERS.add(new BigInteger("226509361"));
        NUMBERS.add(new BigInteger("227752993"));
        NUMBERS.add(new BigInteger("228842209"));
        NUMBERS.add(new BigInteger("230630401"));
        NUMBERS.add(new BigInteger("230996949"));
        NUMBERS.add(new BigInteger("231194965"));
        NUMBERS.add(new BigInteger("237597361"));
        NUMBERS.add(new BigInteger("238244041"));
        NUMBERS.add(new BigInteger("238527745"));
        NUMBERS.add(new BigInteger("241242001"));
        NUMBERS.add(new BigInteger("242641153"));
        NUMBERS.add(new BigInteger("246446929"));
        NUMBERS.add(new BigInteger("247095361"));
        NUMBERS.add(new BigInteger("250200721"));
        NUMBERS.add(new BigInteger("252141121"));
        NUMBERS.add(new BigInteger("255160621"));
        NUMBERS.add(new BigInteger("256828321"));
        NUMBERS.add(new BigInteger("257495641"));
        NUMBERS.add(new BigInteger("258634741"));
        NUMBERS.add(new BigInteger("266003101"));
        NUMBERS.add(new BigInteger("270857521"));
        NUMBERS.add(new BigInteger("271481329"));
        NUMBERS.add(new BigInteger("271794601"));
        NUMBERS.add(new BigInteger("273769921"));
        NUMBERS.add(new BigInteger("274569601"));
        NUMBERS.add(new BigInteger("275283401"));
        NUMBERS.add(new BigInteger("277241401"));
        NUMBERS.add(new BigInteger("278152381"));
        NUMBERS.add(new BigInteger("279377281"));
        NUMBERS.add(new BigInteger("280067761"));
        NUMBERS.add(new BigInteger("288120421"));
        NUMBERS.add(new BigInteger("289860481"));
        NUMBERS.add(new BigInteger("291848401"));
        NUMBERS.add(new BigInteger("292244833"));
        NUMBERS.add(new BigInteger("292776121"));
        NUMBERS.add(new BigInteger("295643089"));
        NUMBERS.add(new BigInteger("295826581"));
        NUMBERS.add(new BigInteger("296559361"));
        NUMBERS.add(new BigInteger("299736181"));
        NUMBERS.add(new BigInteger("300614161"));
        NUMBERS.add(new BigInteger("301704985"));
        NUMBERS.add(new BigInteger("302751505"));
        NUMBERS.add(new BigInteger("306871201"));
        NUMBERS.add(new BigInteger("311388337"));
        NUMBERS.add(new BigInteger("321197185"));
        NUMBERS.add(new BigInteger("321602401"));
        NUMBERS.add(new BigInteger("328573477"));
        NUMBERS.add(new BigInteger("329769721"));
        NUMBERS.add(new BigInteger("333065305"));
        NUMBERS.add(new BigInteger("333229141"));
        NUMBERS.add(new BigInteger("338740417"));
        NUMBERS.add(new BigInteger("334783585"));
        NUMBERS.add(new BigInteger("346808881"));
        NUMBERS.add(new BigInteger("348612265"));
        NUMBERS.add(new BigInteger("354938221"));
        NUMBERS.add(new BigInteger("357380101"));
        NUMBERS.add(new BigInteger("358940737"));
        NUMBERS.add(new BigInteger("360067201"));
        NUMBERS.add(new BigInteger("362569201"));
        NUMBERS.add(new BigInteger("364590721"));
        NUMBERS.add(new BigInteger("366532321"));
        NUMBERS.add(new BigInteger("366652201"));
        NUMBERS.add(new BigInteger("367804801"));
        NUMBERS.add(new BigInteger("367939585"));
        NUMBERS.add(new BigInteger("368113411"));
        NUMBERS.add(new BigInteger("382304161"));
        NUMBERS.add(new BigInteger("382536001"));
        NUMBERS.add(new BigInteger("390489121"));
        NUMBERS.add(new BigInteger("392099401"));
        NUMBERS.add(new BigInteger("393513121"));
        NUMBERS.add(new BigInteger("393716701"));
        NUMBERS.add(new BigInteger("395044651"));
        NUMBERS.add(new BigInteger("395136505"));
        NUMBERS.add(new BigInteger("399906001"));
        NUMBERS.add(new BigInteger("403043257"));
        NUMBERS.add(new BigInteger("405739681"));
        NUMBERS.add(new BigInteger("413058601"));
        NUMBERS.add(new BigInteger("413138881"));
        NUMBERS.add(new BigInteger("416964241"));
        NUMBERS.add(new BigInteger("419520241"));
        NUMBERS.add(new BigInteger("426821473"));
        NUMBERS.add(new BigInteger("429553345"));
        NUMBERS.add(new BigInteger("434330401"));
        NUMBERS.add(new BigInteger("434932961"));
        NUMBERS.add(new BigInteger("438359041"));
        NUMBERS.add(new BigInteger("440306461"));
        NUMBERS.add(new BigInteger("455106601"));
        NUMBERS.add(new BigInteger("458368201"));
        NUMBERS.add(new BigInteger("461502097"));
        NUMBERS.add(new BigInteger("461854261"));
        NUMBERS.add(new BigInteger("462199681"));
        NUMBERS.add(new BigInteger("471905281"));
        NUMBERS.add(new BigInteger("471441001"));
        NUMBERS.add(new BigInteger("473847121"));
        NUMBERS.add(new BigInteger("477726145"));
        NUMBERS.add(new BigInteger("481239361"));
        NUMBERS.add(new BigInteger("483006889"));
        NUMBERS.add(new BigInteger("484662529"));
        NUMBERS.add(new BigInteger("490099681"));
        NUMBERS.add(new BigInteger("490503601"));
        NUMBERS.add(new BigInteger("492559141"));
        NUMBERS.add(new BigInteger("503758801"));
        NUMBERS.add(new BigInteger("507726901"));
        NUMBERS.add(new BigInteger("510825601"));
        NUMBERS.add(new BigInteger("511338241"));
        NUMBERS.add(new BigInteger("516684961"));
        NUMBERS.add(new BigInteger("517937581"));
        NUMBERS.add(new BigInteger("518117041"));
        NUMBERS.add(new BigInteger("518706721"));
        NUMBERS.add(new BigInteger("527761081"));
        NUMBERS.add(new BigInteger("529782121"));
        NUMBERS.add(new BigInteger("530443201"));
        NUMBERS.add(new BigInteger("532758241"));
        NUMBERS.add(new BigInteger("540066241"));
        NUMBERS.add(new BigInteger("542497201"));
        NUMBERS.add(new BigInteger("544101481"));
        NUMBERS.add(new BigInteger("545363281"));
        NUMBERS.add(new BigInteger("547652161"));
        NUMBERS.add(new BigInteger("548871961"));
        NUMBERS.add(new BigInteger("549333121"));
        NUMBERS.add(new BigInteger("549538081"));
        NUMBERS.add(new BigInteger("551672221"));
        NUMBERS.add(new BigInteger("552894301"));
        NUMBERS.add(new BigInteger("555465601"));
        NUMBERS.add(new BigInteger("556199281"));
        NUMBERS.add(new BigInteger("556450777"));
        NUMBERS.add(new BigInteger("557160241"));
        NUMBERS.add(new BigInteger("558977761"));
        NUMBERS.add(new BigInteger("561777121"));
        NUMBERS.add(new BigInteger("564651361"));
        NUMBERS.add(new BigInteger("568227241"));
        NUMBERS.add(new BigInteger("569332177"));
        NUMBERS.add(new BigInteger("573896881"));
        NUMBERS.add(new BigInteger("577240273"));
        NUMBERS.add(new BigInteger("579606301"));
        NUMBERS.add(new BigInteger("580565233"));
        NUMBERS.add(new BigInteger("590754385"));
        NUMBERS.add(new BigInteger("595405201"));
        NUMBERS.add(new BigInteger("597717121"));
        NUMBERS.add(new BigInteger("600892993"));
        NUMBERS.add(new BigInteger("602074585"));
        NUMBERS.add(new BigInteger("602426161"));
        NUMBERS.add(new BigInteger("606057985"));
        NUMBERS.add(new BigInteger("609865201"));
        NUMBERS.add(new BigInteger("612816751"));
        NUMBERS.add(new BigInteger("616463809"));
        NUMBERS.add(new BigInteger("620169409"));
        NUMBERS.add(new BigInteger("625060801"));
        NUMBERS.add(new BigInteger("625482001"));
        NUMBERS.add(new BigInteger("629692801"));
        NUMBERS.add(new BigInteger("631071001"));
        NUMBERS.add(new BigInteger("633639097"));
        NUMBERS.add(new BigInteger("652969351"));
        NUMBERS.add(new BigInteger("656187001"));
        NUMBERS.add(new BigInteger("662086041"));
        NUMBERS.add(new BigInteger("683032801"));
        NUMBERS.add(new BigInteger("683379841"));
        NUMBERS.add(new BigInteger("686059921"));
        NUMBERS.add(new BigInteger("689880801"));
        NUMBERS.add(new BigInteger("697906561"));
        NUMBERS.add(new BigInteger("702683101"));
        NUMBERS.add(new BigInteger("703995733"));
        NUMBERS.add(new BigInteger("704934361"));
        NUMBERS.add(new BigInteger("710382401"));
        NUMBERS.add(new BigInteger("710541481"));
        NUMBERS.add(new BigInteger("711374401"));
        NUMBERS.add(new BigInteger("713588401"));
        NUMBERS.add(new BigInteger("717164449"));
        NUMBERS.add(new BigInteger("727083001"));
        NUMBERS.add(new BigInteger("739444021"));
        NUMBERS.add(new BigInteger("743404663"));
        NUMBERS.add(new BigInteger("744866305"));
        NUMBERS.add(new BigInteger("752102401"));
        NUMBERS.add(new BigInteger("765245881"));
        NUMBERS.add(new BigInteger("771043201"));
        NUMBERS.add(new BigInteger("775368901"));
        NUMBERS.add(new BigInteger("775866001"));
        NUMBERS.add(new BigInteger("776176261"));
        NUMBERS.add(new BigInteger("784966297"));
        NUMBERS.add(new BigInteger("790020001"));
        NUMBERS.add(new BigInteger("790623289"));
        NUMBERS.add(new BigInteger("794937601"));
        NUMBERS.add(new BigInteger("798770161"));
        NUMBERS.add(new BigInteger("804978721"));
        NUMBERS.add(new BigInteger("809702401"));
        NUMBERS.add(new BigInteger("809883361"));
        NUMBERS.add(new BigInteger("814056001"));
        NUMBERS.add(new BigInteger("822531841"));
        NUMBERS.add(new BigInteger("824389441"));
        NUMBERS.add(new BigInteger("829678141"));
        NUMBERS.add(new BigInteger("833608321"));
        NUMBERS.add(new BigInteger("834244501"));
        NUMBERS.add(new BigInteger("839275921"));
        NUMBERS.add(new BigInteger("841340521"));
        NUMBERS.add(new BigInteger("843704401"));
        NUMBERS.add(new BigInteger("847491361"));
        NUMBERS.add(new BigInteger("849064321"));
        NUMBERS.add(new BigInteger("851703301"));
        NUMBERS.add(new BigInteger("851934601"));
        NUMBERS.add(new BigInteger("852729121"));
        NUMBERS.add(new BigInteger("855734401"));
        NUMBERS.add(new BigInteger("863984881"));
        NUMBERS.add(new BigInteger("867800701"));
        NUMBERS.add(new BigInteger("876850801"));
        NUMBERS.add(new BigInteger("882796321"));
        NUMBERS.add(new BigInteger("885336481"));
        NUMBERS.add(new BigInteger("888700681"));
        NUMBERS.add(new BigInteger("897880321"));
        NUMBERS.add(new BigInteger("902645857"));
        NUMBERS.add(new BigInteger("914801665"));
        NUMBERS.add(new BigInteger("918661501"));
        NUMBERS.add(new BigInteger("928482241"));
        NUMBERS.add(new BigInteger("931694401"));
        NUMBERS.add(new BigInteger("934784929"));
        NUMBERS.add(new BigInteger("935794081"));
        NUMBERS.add(new BigInteger("939947009"));
        NUMBERS.add(new BigInteger("940123801"));
        NUMBERS.add(new BigInteger("941056273"));
        NUMBERS.add(new BigInteger("954732853"));
        NUMBERS.add(new BigInteger("955134181"));
        NUMBERS.add(new BigInteger("957044881"));
        NUMBERS.add(new BigInteger("958735681"));
        NUMBERS.add(new BigInteger("958762729"));
        NUMBERS.add(new BigInteger("958970545"));
        NUMBERS.add(new BigInteger("962442001"));
        NUMBERS.add(new BigInteger("962500561"));
        NUMBERS.add(new BigInteger("963168193"));
        NUMBERS.add(new BigInteger("968553181"));
        NUMBERS.add(new BigInteger("975303121"));
        NUMBERS.add(new BigInteger("977892241"));
        NUMBERS.add(new BigInteger("981567505"));
        NUMBERS.add(new BigInteger("981789337"));
        NUMBERS.add(new BigInteger("985052881"));
        NUMBERS.add(new BigInteger("990893569"));
        NUMBERS.add(new BigInteger("993420289"));
        NUMBERS.add(new BigInteger("993905641"));
        NUMBERS.add(new BigInteger("1001152801"));
        NUMBERS.add(new BigInteger("1027334881"));
        NUMBERS.add(new BigInteger("1030401901"));
        NUMBERS.add(new BigInteger("1031750401"));
        NUMBERS.add(new BigInteger("1035608041"));
        NUMBERS.add(new BigInteger("1038165961"));
        NUMBERS.add(new BigInteger("1055384929"));
        NUMBERS.add(new BigInteger("1070659201"));
        NUMBERS.add(new BigInteger("1072570801"));
        NUMBERS.add(new BigInteger("1093916341"));
        NUMBERS.add(new BigInteger("1100674561"));
        NUMBERS.add(new BigInteger("1103145121"));
        NUMBERS.add(new BigInteger("1110400109"));
        NUMBERS.add(new BigInteger("1125038377"));
        NUMBERS.add(new BigInteger("1131222841"));
        NUMBERS.add(new BigInteger("1136739745"));
        NUMBERS.add(new BigInteger("1177195201"));
        NUMBERS.add(new BigInteger("1180398961"));
        NUMBERS.add(new BigInteger("1189238401"));
        NUMBERS.add(new BigInteger("1190790721"));
        NUMBERS.add(new BigInteger("1193229577"));
        NUMBERS.add(new BigInteger("1198650961"));
        NUMBERS.add(new BigInteger("1200456577"));
        NUMBERS.add(new BigInteger("1200778753"));
        NUMBERS.add(new BigInteger("1207252621"));
        NUMBERS.add(new BigInteger("1213619761"));
        NUMBERS.add(new BigInteger("1216631521"));
        NUMBERS.add(new BigInteger("1223475841"));
        NUMBERS.add(new BigInteger("1227220801"));
        NUMBERS.add(new BigInteger("1227280681"));
        NUMBERS.add(new BigInteger("1232469001"));
        NUMBERS.add(new BigInteger("1251295501"));
        NUMBERS.add(new BigInteger("1251992281"));
        NUMBERS.add(new BigInteger("1257102001"));
        NUMBERS.add(new BigInteger("1260332137"));
        NUMBERS.add(new BigInteger("1264145401"));
        NUMBERS.add(new BigInteger("1268604001"));
        NUMBERS.add(new BigInteger("1269295201"));
        NUMBERS.add(new BigInteger("1295577361"));
        NUMBERS.add(new BigInteger("1299963601"));
        NUMBERS.add(new BigInteger("1309440001"));
        NUMBERS.add(new BigInteger("1312114945"));
        NUMBERS.add(new BigInteger("1312332001"));
        NUMBERS.add(new BigInteger("1316958721"));
        NUMBERS.add(new BigInteger("1317828601"));
        NUMBERS.add(new BigInteger("1318126321"));
        NUMBERS.add(new BigInteger("1321983937"));
        NUMBERS.add(new BigInteger("1332521065"));
        NUMBERS.add(new BigInteger("1337805505"));
        NUMBERS.add(new BigInteger("1348964401"));
        NUMBERS.add(new BigInteger("1349671681"));
        NUMBERS.add(new BigInteger("1376844481"));
        NUMBERS.add(new BigInteger("1378483393"));
        NUMBERS.add(new BigInteger("1382114881"));
        NUMBERS.add(new BigInteger("1384157161"));
        NUMBERS.add(new BigInteger("1394746081"));
        NUMBERS.add(new BigInteger("1394942473"));
        NUMBERS.add(new BigInteger("1404111241"));
        NUMBERS.add(new BigInteger("1407548341"));
        NUMBERS.add(new BigInteger("1422477001"));
        NUMBERS.add(new BigInteger("1428966001"));
        NUMBERS.add(new BigInteger("1439328001"));
        NUMBERS.add(new BigInteger("1439492041"));
        NUMBERS.add(new BigInteger("1441316269"));
        NUMBERS.add(new BigInteger("1442761201"));
        NUMBERS.add(new BigInteger("1490078305"));
        NUMBERS.add(new BigInteger("1504651681"));
        NUMBERS.add(new BigInteger("1507746241"));
        NUMBERS.add(new BigInteger("1515785041"));
        NUMBERS.add(new BigInteger("1520467201"));
        NUMBERS.add(new BigInteger("1528936501"));
        NUMBERS.add(new BigInteger("1540454761"));
        NUMBERS.add(new BigInteger("1574601601"));
        NUMBERS.add(new BigInteger("1576826161"));
        NUMBERS.add(new BigInteger("1583582113"));
        NUMBERS.add(new BigInteger("1588247851"));
        NUMBERS.add(new BigInteger("1597821121"));
        NUMBERS.add(new BigInteger("1626167341"));
        NUMBERS.add(new BigInteger("1632785701"));
        NUMBERS.add(new BigInteger("1646426881"));
        NUMBERS.add(new BigInteger("1648076041"));
        NUMBERS.add(new BigInteger("1659935761"));
        NUMBERS.add(new BigInteger("1672719217"));
        NUMBERS.add(new BigInteger("1676203201"));
        NUMBERS.add(new BigInteger("1685266561"));
        NUMBERS.add(new BigInteger("1688214529"));
        NUMBERS.add(new BigInteger("1689411601"));
        NUMBERS.add(new BigInteger("1690230241"));
        NUMBERS.add(new BigInteger("1699279441"));
        NUMBERS.add(new BigInteger("1701016801"));
        NUMBERS.add(new BigInteger("1708549501"));
        NUMBERS.add(new BigInteger("1726372441"));
        NUMBERS.add(new BigInteger("1746692641"));
        NUMBERS.add(new BigInteger("1750412161"));
        NUMBERS.add(new BigInteger("1760460481"));
        NUMBERS.add(new BigInteger("1772267281"));
        NUMBERS.add(new BigInteger("1776450565"));
        NUMBERS.add(new BigInteger("1778382541"));
        NUMBERS.add(new BigInteger("1785507361"));
        NUMBERS.add(new BigInteger("1795216501"));
        NUMBERS.add(new BigInteger("1801558201"));
        NUMBERS.add(new BigInteger("1803278401"));
        NUMBERS.add(new BigInteger("1817067169"));
        NUMBERS.add(new BigInteger("1825568641"));
        NUMBERS.add(new BigInteger("1828377001"));
        NUMBERS.add(new BigInteger("1831048561"));
        NUMBERS.add(new BigInteger("1833328621"));
        NUMBERS.add(new BigInteger("1841034961"));
        NUMBERS.add(new BigInteger("1846817281"));
        NUMBERS.add(new BigInteger("1848681121"));
        NUMBERS.add(new BigInteger("1849811041"));
        NUMBERS.add(new BigInteger("1879480513"));
        NUMBERS.add(new BigInteger("1894344001"));
        NUMBERS.add(new BigInteger("1899525601"));
        NUMBERS.add(new BigInteger("1913016001"));
        NUMBERS.add(new BigInteger("1918052065"));
        NUMBERS.add(new BigInteger("1942608529"));
        NUMBERS.add(new BigInteger("1943951041"));
        NUMBERS.add(new BigInteger("1949646601"));
        NUMBERS.add(new BigInteger("1950276565"));
        NUMBERS.add(new BigInteger("1954174465"));
        NUMBERS.add(new BigInteger("1955324449"));
        NUMBERS.add(new BigInteger("1958102641"));
        NUMBERS.add(new BigInteger("1976295241"));
        NUMBERS.add(new BigInteger("1984089601"));
        NUMBERS.add(new BigInteger("1988071801"));
        NUMBERS.add(new BigInteger("2000436751"));
        NUMBERS.add(new BigInteger("2023528501"));
        NUMBERS.add(new BigInteger("2049293401"));
        NUMBERS.add(new BigInteger("2064236401"));
        NUMBERS.add(new BigInteger("2064373921"));
        NUMBERS.add(new BigInteger("2067887557"));
        NUMBERS.add(new BigInteger("2073560401"));
        NUMBERS.add(new BigInteger("2080544005"));
        NUMBERS.add(new BigInteger("2097317377"));
        NUMBERS.add(new BigInteger("2101170097"));
        NUMBERS.add(new BigInteger("2105594401"));
        NUMBERS.add(new BigInteger("2107535221"));
        NUMBERS.add(new BigInteger("2126689501"));
        NUMBERS.add(new BigInteger("2140538401"));
        NUMBERS.add(new BigInteger("2140699681"));
        NUMBERS.add(new BigInteger("2301745249"));
        NUMBERS.add(new BigInteger("9624742921"));
        NUMBERS.add(new BigInteger("11346205609"));
        NUMBERS.add(new BigInteger("13079177569"));
        NUMBERS.add(new BigInteger("21515221081"));
        NUMBERS.add(new BigInteger("27278026129"));
        NUMBERS.add(new BigInteger("65700513721"));
        NUMBERS.add(new BigInteger("71171308081"));
        NUMBERS.add(new BigInteger("100264053529"));
        NUMBERS.add(new BigInteger("168003672409"));
        NUMBERS.add(new BigInteger("172018713961"));
        NUMBERS.add(new BigInteger("173032371289"));
        NUMBERS.add(new BigInteger("192739365541"));
        NUMBERS.add(new BigInteger("225593397919"));
        NUMBERS.add(new BigInteger("461574735553"));
        NUMBERS.add(new BigInteger("464052305161"));
        NUMBERS.add(new BigInteger("2199733160881"));
        NUMBERS.add(new BigInteger("10028704049893"));
        NUMBERS.add(new BigInteger("84154807001953"));
        NUMBERS.add(new BigInteger("197531244744661"));
        NUMBERS.add(new BigInteger("973694665856161"));
    }
}
